// 最长递增子序列模型 —— dp
#include <iostream>
#include <algorithm>
#include <cstring>
#include <string>
using namespace std;
const int N = 1e5 + 10;

int last[N], first[N];
int n;
int g[10];

// n^2级别的时间复杂度，是需要优化的
// 最长上升子序列优化模型
// 考虑到当前位置上升子序列只需要找前面以first结尾的最长上升序列即可
// 直接优化成O(N)!!!

int main()
{
    cin >> n;
    for(int i = 1; i <= n; ++i)
    {
        string s;
        cin >> s;
        last[i] = s.back() - '0';
        first[i] = s[0] - '0';
    }
    g[last[1]] = 1;
    int ans = 1; 
    for(int i = 2; i <= n; ++i)
    {
        g[last[i]] = max(g[last[i]], g[first[i]] + 1);
        ans = max(ans, g[last[i]]);
    }
    cout << (n - ans) << endl;
    return 0;
}